package com.ityedao.Map集合遍历方式.案例;

import java.util.*;

/**
 * 需求:
 * 某个班级80名学生，现在需要组成秋游活动，
 * 班长提供了四个景点依次是（A、B、C、D）,
 * 每个学生只能选择一个景点，
 * 请统计出最终哪个景点想去的人数最多。
 * 分析:
 * 1、将80个学生选择的数据拿到程序中去。
 * 2、定义Map集合用于存储最终统计的结果。
 * 3、遍历80个学生选择的数据，看Map集合中是否存在，不存在存入“数据=1“，存在则其对应值+1,
 */
public class MapCase {
    public static void main(String[] args) {
        // 1 将80个学生选择的数据拿到程序中去
        List<String> data = new ArrayList<>();
        String[] selects = {"A", "B", "C", "D"};
        Random r = new Random();
        for (int i = 1; i <= 80; i++) {
            int index = r.nextInt(4);// 每次模拟一个学生选择一个景点，存入到集合中去
            data.add(selects[index]);
        }
        System.out.println(data);

        // 2 开始统计每个景点的投票人数
        // 准备Map集合用于存储最终统计的结果
        Map<String, Integer> result = new HashMap<>();

        // 3 开始遍历景点数据
        for (String s : data) {
            // 问问Map集合中是否存在该景点
            if (result.containsKey(s)){
                // 说明之前统计过这个景点，其值+1，存入到Map集合中去
                result.put(s, result.get(s) + 1);
            }else {
                // 说明这个景点是第一次统计，存入“景点=1”
                result.put(s, 1);
            }
        }
        System.out.println(result);
    }
}
